All Projects

|

Shutter Stories

🗓️ 2025

  • S
  • h
  • u
  • t
  • t
  • e
  • r
  • -
  • S
  • t
  • o
  • r
  • i
  • e
  • s

Samuel Spenser, a London-based photographer, specializes in capturing authentic moments through portrait, wedding, and lifestyle photography. Book your session today to turn your vision into timeless art.

Tech Stack:

Next.js

Tailwind CSS

Three.js

Framer Motion

Shadcn UI

Zod

Lenis

Lucide React

Typescript

React.js

Email.js

Vercel

Shutter Stories

Features and Functionality

Interactive Hero Section

Uses Three.js to render lightweight 3D elements for an immersive first impression.

Animated Transitions

Framer Motion powers smooth page transitions and microinteractions to enhance user engagement.

Gallery by Category

Displays Samuel's work categorized into Portrait, Wedding, and Lifestyle sections with optimized image rendering.

Contact & Booking Form

Integrated with Email.js for direct inquiries, with Zod validation to ensure proper data formatting.

Smooth Scrolling

Lenis library ensures a buttery-smooth scrolling experience, adding to the luxurious feel of the site.

Dark Mode & Custom UI

Built with Shadcn UI and Lucide icons to provide a clean, accessible, and modern interface, including theme toggle.

Responsive Design

Mobile-first and fully responsive layout using Tailwind CSS for consistency across all screen sizes.

Optimized Deployment

Deployed on Vercel for fast, reliable global delivery with automatic scaling and CDN support.

Type Safety

Uses TypeScript for safer development and better maintainability across the codebase.

Challenges and Solutions

Image Optimization vs. Visual Quality

Used Next.js Image component for responsive image loading, WebP format support, and lazy loading to maintain both speed and quality.

Performance with Multiple Animations

Optimized Three.js scenes, minimized animation triggers, and deferred non-critical content loading to maintain smooth performance.

Maintaining Visual Consistency

Designed a component-based UI system with Tailwind CSS and Shadcn UI for consistent styling and branding across the site.

Spam & Validation in Contact Forms

Implemented Zod for client-side validation and added a honeypot field to filter out spam bots.

3D Elements Affecting SEO

Isolated 3D components in client-only renders and focused on semantic HTML, proper meta tags, and alt attributes to boost SEO.

Work - Shutter Stories